// package com.slimbloody.playground.serializer;
//
// import com.fasterxml.jackson.core.JsonParser;
// import com.fasterxml.jackson.core.JsonProcessingException;
// import com.fasterxml.jackson.databind.DeserializationContext;
// import com.fasterxml.jackson.databind.JsonDeserializer;
// import com.weijin.chatting.common.exception.BusinessException;
//
// import java.io.IOException;
// import java.math.BigDecimal;
// import java.util.function.Predicate;
// import java.util.regex.Pattern;
//
// public class BigDecimalDeserializer extends JsonDeserializer<BigDecimal> {
//     public static final BigDecimalDeserializer instance = new BigDecimalDeserializer();
//     public static final String PATTERN = "^[0-9]*\\.?[0-9]{0,2}$";
//     public static final Predicate<String> PATTERN_BIG_DECIMAL = Pattern.compile(PATTERN).asPredicate();
//
//     @Override
//     public BigDecimal deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException {
//         String s = jsonParser.readValueAs(String.class);
//         if (PATTERN_BIG_DECIMAL.test(s)) {
//             return new BigDecimal(s);
//         }
//
//         throw new RuntimeException("BigDecimal格式错误");
//     }
//
//     @Override
//     public Class<BigDecimal> handledType() {
//         return BigDecimal.class;
//     }
// }
